1. Field of the Invention
The present invention generally relates to the transfer of data. More particularly, the present invention provides a method, system, and computer program product for prefetching sync data and for edge caching sync data on a cellular device (e.g., a cell phone).
2. Related Art
True enterprise applications are gaining support on mobile devices. Two of the most well known enterprise applications include electronic mail (email) and Personal Information Management (PIM). For several years, applications that sync email and PIM data have used a client installed locally by a user that draws from a copy of the user's data with mobile device connectivity through a cradle sync. As mobile devices and their connectivity continue to improve, however, the syncing of data is moving to a more robust and enterprise centric model. In such an enterprise centric model, server data is often synced using secure transport over a wide area network (WAN), a wireless local area network (WLAN), or a personal area network (PAN). In addition, requirements are moving from simple email and PIM static replicas to the processing of data at the mobile device (e.g., deleting, filling, sending, accepting meetings, etc.), and the deployment of multiple applications other than just email and PIM.
While efforts have been made to optimize sync performance, it still remains a time consuming process, and many techniques have been introduced to reduce the time required by sync processes. Most mobile device users desire a push model where a sync server sends updates as available to the mobile device to keep the mobile device updated without user intervention. However, a push model is difficult to implement because mobile devices often lose connectivity, roam between networks, can be difficult for the sync server to locate, go to sleep to conserve power, or otherwise become unavailable to receive pushed sync data. A compromise often employed is to perform a timed pull on a regular interval. However, if the mobile device has been offline or out of network range, a sync will be needed once connectivity is re-established.
When a mobile device connects to a sync server, the time of the mobile device's last sync is used to search for user data that has changed since the last sync was performed. Email messages, calendar records, and/or other user data that has changed since the last sync are then retrieved, fields are translated as necessary, and any other required formatting performed. Thereafter, the new sync data is sent to the mobile device. This process typically takes many server request/server response transactions with large gaps in between as the sync server communicates with an associated backend server and prepares the data for the mobile device. The time required to perform a sync, therefore, is often quite long, especially when the sync occurs over a network with a slow data transfer rate such as a cellular network. This is even a greater problem when a plurality of mobile devices require the same sync data, thereby necessitating the redundant transfer of the same sync data to each of the plurality of mobile devices.
Today, there is an ever increasing proliferation of new mobile devices available to users. This presents several challenges related to mobile devices having different data transfer speeds and users having multiple mobile devices. This also leads to an increased dependency and resulting demand for robustness and performance of the applications used by mobile devices.
An interesting by-product of this increased dependency is that users have become used to having a cell phone, laptop connectivity in any location (e.g., via a WAN, WLAN, etc.), and a handheld/personal digital assistant (PDA) device with network access and data availability that can be used in the areas where laptop connectivity is not available. Unfortunately, this results in multiple cellular phone accounts/numbers each with a separate monthly service charge. One way to avoid such multiple services charges is to use a Bluetooth enabled cell phone to provide both data and connectivity for a user's laptop and any number of handheld/PDA devices. However, the slow data transfer speed (e.g., 1.5×dial-up) between the cell phone and the cellular network greatly limits the use of a cell phone in this manner.
The ideal connectivity model employs a continuous connection and a push synchronization model. Unfortunately, the push sync model can be difficult to implement and can have some undesirable side effects. For example, as stated above, a push sync model is difficult to implement because mobile devices often lose connectivity, roam between networks, can be difficult to locate, go to sleep to conserve power, or otherwise become unavailable. In addition, the use of multiple mobile devices often requires that the same sync data is pushed to a plurality of different mobile devices, thereby consuming network bandwidth and increasing the time required to sync the plurality of mobile devices.